%% 取整段eee信号,提取出其中的最后一段混合信号，降采样
clear;clc;
% % 样本一：取5G采样的信号
% File_path = "E:\project\Matlab\RFF_2\MAT\20220713_osci_2\PI05.mat";
% testData = load(File_path);
% a0 = testData.RawData;
% a = a0(65001:end,:); % 取混合部分的信号
% [r,c] = size(a);
% fs = 5000000000; % 采样率 5G
% fs2 = 500000000; % 采样率降到 500M
% a2 = [];
% a2_fft = [];
% for i = 1:c
%     temp = resample(a(:,i),fs2,fs); % 降采样
%     a2 = [a2,temp];
%     temp_fft = abs(fft(temp));
%     a2_fft = [a2_fft,temp_fft];
% end
% [r,c] = size(a2_fft);

%% 读取一个文件的混合信号
% 样本二：取500M采样的信号

File_path = "F:\gbe\mat_data\all_mat_hua\RH00-wy010-0202-1.mat";

testData = load(File_path);
% 获取.mat文件中数据 直接
% a0 = testData.RawData;
% 获取.mat文件中的表格名，读取dataM。（dataM是混合数据，dataC是耦合器的数据）
mat_name = fieldnames(testData);
data_name = strcat('testData.',mat_name(2));
a0 = eval(data_name{1}); 


[r,c] = size(a0);
a = rmDC(a0);
sample_num = 7000000; % 把一个样本的长度设置为此值
a1 = reshape(a,sample_num,floor(r/sample_num*c));
[r,c] = size(a1);
% a1_0 = [];
% for i=1:c
%     temp = powernom(a1(:,i));
%     a1_0 = [a1_0,temp];
% end
% % 切割数据
% s_number = 2048; % 切割数据，一个样本2048个点
% fft_N = 2048;
% a1_1 = a1_0(:);
% a1_2 = a1_1(1:s_number*floor(r*c/s_number));
% a2 = reshape(a1_2,s_number,floor(r*c/s_number));
% [r,c] = size(a2);
% a2_fft = [];
% for i=1:c
%     temp = abs(fft(a2(:,i),fft_N));
%     a2_fft = [a2_fft,temp];
% end

% 专利的图片：幅度谱图
% figure;
% subplot(211);
% plot(a1(1:2048,1),'k');
% xlabel('采样点');ylabel('幅度');title('v_{10}(n)');
% subplot(212);
% sig1 = a1(:,1);
% sig1_fft = abs(fft(sig1,2048));
% plot(sig1_fft,'k');
% xlabel('采样点');ylabel('幅度');title('V_{10}(n)');
% 
% File_path = "F:\gbe\mat_data\all_mat\rh021towy010_1108-5.mat";
% testData = load(File_path);
% a0 = testData.RawData;
% [r,c] = size(a0);
% a = rmDC(a0);
% sample_num = 7000000; % 把一个样本的长度设置为此值
% a2 = reshape(a,sample_num,floor(r/sample_num*c));
% [r,c] = size(a2);
% 
% sig2 = a2(:,1);
% sig2_fft = abs(fft(sig2,2048));
% 
% figure;
% subplot(211);
% cong = sig2-sig1;
% plot(cong(1:2048),'k');
% xlabel('采样点');ylabel('幅度');title('x_{2}(n)');
% cong_fft = abs(fft(cong,2048));
% subplot(212);
% plot(sig1_fft,'k');
% xlabel('采样点');ylabel('幅度');title('X_{2}(n)');

% 平均频谱图
s_number = 2048; % 切割数据，一个样本2048个点
g_number = floor(r/s_number); % 3417
feature_fft = [];
for i=1:c
    sample = a1(1:(s_number*g_number),i);
    sample2 = reshape(sample,s_number,g_number);
    sample2_fft = abs(fft(sample2,s_number));
    sample2_fft_mean = mean(sample2_fft,2);
    feature_fft = [feature_fft,sample2_fft_mean];
end

% %% 取平均值的部分
% num_avg = 10; % 多少个样本取一个平均值
% % 方法1：每num_avg 个取一个平均值样本
% num_sp = floor(c/num_avg); % 每num_avg 个取一个平均值样本
% a_avg = [];
% for i=1:num_sp
%     temp = a2_fft(:,((i-1)*num_avg+1):(i*num_avg));
%     a_avg = [a_avg,mean(temp,2)];
% end

% 方法2
% num_sp = c-num_avg+1; % num_avg为一个窗口，步长为1向后移动取平均值作为一个样本
% a_avg = [];
% for i=1:num_sp
%     temp = a2_fft(:,i:(i+num_avg-1));
%     a_avg = [a_avg,mean(temp,2)];
% end

% figure;
% plot(a(:,1));
% figure;
% plot(a2(:,1));
% figure;
% plot_Spectrogram(a(:,1),fs);
% hold on;
% plot_Spectrogram(a2(:,1),fs2);

% 画图
% figure;
% for i = 1:1
%     plot(a1(1:7000,i),'r');
%     hold on;
% end
h = zeros(1,c); 
num = ["第一次","第二次","第三次","第四次","第五次","第六次","第七次","第八次"];
color = [0 0 0;1 0 0;0 1 0;0 0 1;1 0 1;0 1 1;1 1 0;0.67 0 1;1 0.5 0;0.5 0 0;0.5 0.5 0.5;0 0.67 1;1 0.5 0;1 1 0]; % 7种颜色
% %          黑；  红；  绿；  蓝；  紫；  青；   黄；天蓝；   橘黄;   深红；    灰色；   克莱因蓝;  橙； 

% color = ones(c,3);
% % color(:,1)=1;
% % color(:,2)=[0:0.01:0.99];
% for i = 1:c
%     color(i,3)=mod(i-1,100)/100;
%     color(i,2)=floor((i-1)/100)/10;
% end


figure;
for i = 1:c
    h(i) = plot(feature_fft(:,i),'color',color(i,:));
    hold on;
end
% legend(h(1:c),num(1:c)); % 图示1
t = strsplit(File_path,'\');
title(t(end));
% figure;
% for i = 1:5
%     plot(a1(:,i));
%     hold on;
% end

% %% 巴特沃斯滤波，通低频阻高频。滤波后的数据fft
% sample_fs = 500000000; %  采样率 500m
% Nyquist=sample_fs/2; %Nyquist frequency 奈奎斯特频率
% lpf=150000000; %low-pass frequency 低通频率 245m
% order=5; %filter order 滤波器阶数
% % 滤波
% [bb,aa]=butter(order,lpf/Nyquist); %create filter coefficients 计算滤波器系数,b前馈系数，a后馈系数
% % filtered_data=filter(b,a,a1); % filter using 'b' and 'a' coefficients
% filtered_data = [];
% for i=1:c
%     filter_i = filter(bb,aa,a1(:,i));
%     filtered_data = [filtered_data, filter_i];
% end
% % 切割数据，计算滤波后的fft
% s_number = 2048; % 切割数据，一个样本2048个点
% % g_number = 2048*3417; % 小于7000000的最大2048倍数
% g_number = floor(r/s_number); % 3417
% feature_fft_filtered = [];
% for i=1:c
%     sample = filtered_data(1:(s_number*g_number),i);
%     sample2 = reshape(sample,s_number,g_number);
%     sample2_fft = abs(fft(sample2,s_number));
%     sample2_fft_mean = mean(sample2_fft,2);
%     feature_fft_filtered = [feature_fft_filtered,sample2_fft_mean];
% end
% % 画图：
% %滤波后的时域图
% figure;
% for i = 1:1
%     plot(filtered_data(1:512,i),'m');
%     hold on;
% end
% %滤波后的频谱图
% figure;
% for i = 1:c
%     plot(feature_fft_filtered(:,i),'m');
%     hold on;
% end
